﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace NineMine.DataModel
{
    public class Project
    {
        [Key]
        public long Id { get; set; }

        [MaxLength(255)]
        public string Name { get; set; }

        [Column(TypeName = "ntext")]
        public string Description { get; set; }

        [MaxLength(255)]
        public string HomePage { get; set; }

        public bool IsPublic { get; set; }

        public Project Parent { get; set; }

        public DateTime? CreatedOn { get; set; }

        public DateTime? UpdatedOn { get; set; }

        [MaxLength(255)]
        public string Identifier { get; set; }

        public long Status { get; set; }

        public long lft { get; set; }

        public long rgt { get; set; }

        public bool InheritMembers { get; set; }

        public List<Board> Boards { get; set; }

        public List<Issue> Issues { get; set; }

        public List<Member> Members { get; set; }

        public List<Project> SubProjects { get; set; }

        public List<Document> Documents { get; set; }

        public List<IssueCategory> IssueCategories { get; set; }

        public List<News> News { get; set; }

        public List<EnabledModule> EnabledModules { get; set; }

        public List<Enumeration> Enumerations { get; set; }

        public List<Tracker> Trackers { get; set; }

        public List<Query> Queries { get; set; }

        public List<Version> Versions { get; set; }
    }
}
